Pressidian
花园入口
笔记
项目
关于
实验室
GitHub
花园入口
笔记
项目
关于
实验室
GitHub

KNOWLEDGE PATHS

笔记库
当前位置
笔记库/前端/三件套/样式/CSS/MDN文档/1 基础样式/2 选择器

CSS 选择器

6 分钟阅读 · Note

目录树 578 篇

                  • 关系选择器
                  • 技能测试:选择器
                  • 属性选择器
                  • 伪类和伪元素
                  • CSS 选择器
          • tailwindCSS
      • 前端技术栈
    • 笔记目录
    • CLAUDE.md
    • Vue 组件与 Render 函数

关联笔记 6

↗关系选择器同一路径↗技能测试:选择器同一路径↗属性选择器同一路径↗伪类和伪元素同一路径↗背景与边框共同主题↗测试你的技能:CSS 样式基础共同主题
  • CSS 选择器

CSS 选择器

  • 上一页
  • 概述:CSS 构建
  • 下一页

CSS中,选择器用来指定网页上我们想要样式化的HTML元素。

选择器是什么?

它是元素和其他部分组合起来告诉浏览器哪个 HTML 元素应当是被选为应用规则中的 CSS 属性值的方式。选择器所选择的元素,叫做“选择器的对象”。

Some code with the h1 highlighted.

前面的文章中,你也许已经遇到过几种不同的选择器,了解到选择器可以以不同的方式选择元素,比如选择诸如h1的元素,或者是根据 class (类) 选择例如.special。

CSS 中,选择器由 CSS 选择器规范加以定义。就像是 CSS 的其他部分那样,它们需要浏览器的支持才能工作。你会遇到的大多数选择器都是在CSS 3中定义的,这是一个成熟的规范,因此你会发现浏览器对这些选择器有良好的支持。

选择器列表

如果你有多个使用相同样式的 CSS 选择器,那么这些单独的选择器可以被混编为一个“选择器列表”,这样,规则就可以应用到所有的单个选择器上了。例如,如果我的h1和.special类有相同的 CSS,那么我可以把它们写成两个分开的规则。

cssCopy

h1 {
  color: blue;
}

.special {
  color: blue;
}

我也可以将它们组合起来,在它们之间加上一个逗号,变为选择器列表。

cssCopy

h1, .special {
  color: blue;
}

空格可以在逗号前或后,你可能还会发现如果每个选择器都另起一行,会更好读些。

cssCopy

h1,
.special {
  color: blue;
}

在下面的实时示例中,试着把两个有相同声明的选择器组合起来。外观在组合起来以后应该还是一样的。

htmlCopyPlay

<h1>Type selectors</h1>
<p>
  Veggies es bonus vobis, proinde vos postulo essum magis
  <span>kohlrabi welsh onion</span> daikon amaranth tatsoi tomatillo melon azuki
  bean garlic.
</p>

<p>
  Gumbo beet greens corn soko <strong>endive</strong> gumbo gourd. Parsley
  shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra
  wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.
</p>

<p>
  Turnip greens yarrow ricebean rutabaga <em>endive cauliflower</em> sea lettuce
  kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter
  purslane kale. Celery potato scallion desert raisin horseradish spinach
</p>

cssCopyPlay

body {
  font-family: sans-serif;
}
span {
  background-color: yellow;
}

strong {
  color: rebeccapurple;
}

em {
  color: rebeccapurple;
}

Play

当你使用选择器列表时,如果任何一个选择器无效 (存在语法错误),那么整条规则都会被忽略。

在下面的示例中,无效的 class 选择器会被忽略,而h1选择器仍会被样式化。

cssCopy

h1 {
  color: blue;
}

..special {
  color: blue;
}

但是在被组合起来以后,整个规则都会失效,无论是h1还是这个 class 都不会被样式化。

cssCopy

h1,
..special {
  color: blue;
}

选择器的种类

有几组不同的选择器,知道了需要哪种选择器,你会更容易正确使用它们。在本文的子篇中,我们将会来更详细地看下不同种类的选择器。

类型、类和 ID 选择器

这个选择器组,第一个是指向了所有 HTML 元素 &lt;h1&gt;。

cssCopy

h1 {
}

它也包含了一个 class 的选择器:

cssCopy

.box {
}

亦或,一个 id 选择器:

cssCopy

#unique {
}

标签属性选择器

这组选择器根据一个元素上的某个标签的属性的存在以选择元素的不同方式:

cssCopy

a[title] {
}

或者根据一个有特定值的标签属性是否存在来选择:

cssCopy

a[href="https://example.com"] {
}

伪类与伪元素

这组选择器包含了伪类,用来样式化一个元素的特定状态。例如:hover伪类会在鼠标指针悬浮到一个元素上的时候选择这个元素:

cssCopy

a:hover {
}

它还可以包含了伪元素,选择一个元素的某个部分而不是元素自己。例如,::first-line是会选择一个元素(下面的情况中是&lt;p&gt;)中的第一行,类似&lt;span&gt;包在了第一个被格式化的行外面,然后选择这个&lt;span&gt;。

cssCopy

p::first-line {
}

运算符

最后一组选择器可以将其他选择器组合起来,更复杂的选择元素。下面的示例用运算符(&gt;)选择了&lt;article&gt;元素的初代子元素。

cssCopy

article > p {
}

接下来要做的事情

你可以看下下面的选择器参考表,可以获得到这个学习章节——或者总体来说是 MDN 上——的各种选择器的直接链接;你也可以继续下去,开始你的了解类型、类和 ID 选择器的旅程。